import { ApiProperty } from '@nestjs/swagger';
import { IsNotEmpty, MinLength, MaxLength, Matches, IsArray, ArrayMinSize } from 'class-validator';
export class CreateUserDto {
  @ApiProperty({ description: '用户名' })
  @IsNotEmpty({ message: "请输入用户名" })
  @MaxLength(20, { message: '用户名长度不能超过20个字符' }) // 验证用户名长度
  username: string;

  @ApiProperty({ description: '密码' })
  @IsNotEmpty({ message: "请输入密码" })
  @MinLength(6, { message: '密码长度至少为6个字符' }) // 验证密码长度
  @Matches(/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,}$/, {
    message: '密码必须包含至少一个字母和一个数字，且长度至少为6'
  }) // 验证密码复杂度（包含字母和数字）
  password: string;

  @ApiProperty({ description: '用户角色' })
  @IsArray()
  // @ArrayMinSize(1, { message: '至少选择一个角色' })
  roles: (string | number)[] = []; // 添加默认值为空数组;

}
